import setInterceptor from './config';
import common from './common';
import test from './modules/test';

const install = (Vue, vm) => {
  // 配置
  setInterceptor(Vue, vm);
  // 所有模块的 request 集合
  const modulesApi = {
    test,
  };
  // 所有 api
  const api = {
    // 把公共的接口放到对应 api[接口函数名] 中: api.getCommonData()
    ...common.request({
      get: vm.$u.get,
      post: vm.$u.post,
    }),
  };
  // 把各个模块的接口放到对应 api[模块名][接口函数名] 中: api.moduleName.getModuleData()
  Object.keys(modulesApi).forEach((prop) => {
    api[prop] = modulesApi[prop].request({
      get: vm.$u.get,
      post: vm.$u.post,
    });
  });
  // 将 api 挂载到 this.$api
  Vue.prototype.$api = api;
};

export default {
  install,
  // $api: api, // 方便直接引入使用
};
